#!/usr/bin/evn python
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
   文件名称 :     __init__.py
   文件功能描述 :   功能描述
   创建人 :       小钟同学
   创建时间 :          2021/11/29
-------------------------------------------------
   修改描述-2021/11/29:         
-------------------------------------------------
"""
# from importlib import import_module
# from inspect import getmembers, isclass, isfunction
#
# pb_class = []
# pb_func = []
# pd_module = import_module('hello_pb2_grpc')
# for mod in getmembers(pd_module):
#     if isclass(mod[1]) and mod[0].endswith('Servicer'):
#         pb_class.append(mod[1])
#     if isfunction(mod[1]) and mod[0].startswith('add_') and mod[0].endswith('_to_server'):
#         pb_func.append(mod[1])
# print(pb_class)
# print(pb_func)
# # 需要确保只有一个
# if len(pb_class) == 1:
#     # 输出模块内的所有的类
#     service_class = [mod[1] for mod in getmembers(pd_module) if isclass(mod[1]) and mod[1] not in pb_class]
#     print("打印模块内所有输出-类：",service_class)
#     # 获取<class 'hello_pb2_grpc.GreeterServicer'>内的类方法的名称
#     pb_class_func_names = [name for name, fn in getmembers(pb_class[0]) if isfunction(fn)]
#     print("打印模块内所有输出-类里面包含的方法的名称：", pb_class_func_names)
#     # raise Exception
#     for service in service_class:
#         print("判断是否是子类",service,issubclass(service, (pb_class[0])))
#         # issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类。
#         if issubclass(service, (pb_class[0])):
#             for name, fn in getmembers(service):
#                 if name in pb_class_func_names and isfunction(fn):
#                     print("动态的添加属性方法装饰器")
#                     # setattr(service, name, signal_deco(fn))
#             # return service
#             print("的啥还是的",service)
#